【发布时间】:2019-06-28 07:48:53
【问题描述】:
通过覆盖异步函数立即返回的 resolve(undefined),我的意思是使用:
return new Promise(resolve, reject)... resolve(variableName)
另外,如果这确实是默认行为,还有其他方法可以覆盖它吗?
编辑:感谢@Quentin 的新理解。以下如有错误请更正。
当您在没有等待的情况下调用 async function1() {... 之类的异步函数时:
function1 将阻塞(仅使用 await 或 then “异步”任务)并将运行到完成。
function1 不会立即返回任何内容(即空的、未定义的或待处理的承诺)。
如果没有明确的 return 语句,function1 返回 Promise {undefined}。
如果有await 或return new Promise..,function1 会返回 Promise { pending },因为它们会将任务添加到事件循环微任务队列中。
如果使用了return varName,function1 将通过一个值履行/拒绝承诺。
【问题讨论】:
标签: javascript