Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当Promise.then()钩子被调用时?_Javascript_Promise_Es6 Promise - Fatal编程技术网

Javascript 当Promise.then()钩子被调用时?

Javascript 当Promise.then()钩子被调用时?,javascript,promise,es6-promise,Javascript,Promise,Es6 Promise,我注意到Firefox承诺推迟完整性通知。以下断言失败,因为调用onFullfilled()太晚* 承诺解析时保证调用onFullfilled()的确切时间 *在我的例子中,“Completed”日志消息在测试框架报告断言失败后出现。在执行所有同步代码后,始终调用Promise resolution钩子。这是经过设计的,并且是为了防止竞争条件 由于承诺有时异步解析,所以规范要求它们总是异步解析,因此执行相同的代码路径。承诺保护你 它是: 在执行上下文堆栈仅包含平台代码之前,不得调用OnCompl

我注意到Firefox承诺推迟完整性通知。以下断言失败,因为调用onFullfilled()太晚*

承诺解析时保证调用onFullfilled()的确切时间


*在我的例子中,“Completed”日志消息在测试框架报告断言失败后出现。

在执行所有同步代码后,始终调用Promise resolution钩子。这是经过设计的,并且是为了防止竞争条件

由于承诺有时异步解析,所以规范要求它们总是异步解析,因此执行相同的代码路径。承诺保护你

它是:

在执行上下文堆栈仅包含平台代码之前,不得调用OnCompleted或onRejected

许多测试框架(即Mocha)通过返回承诺来直接使用承诺语法测试承诺

it("does something", function(){
    return aPromise; // if aPromise resolves the test passes
})

你应该总是给“then”一个函数。因此,应该使用“onFullfilled()”而不是“onFullfilled”作为“then”的参数

所以应该是这样的:

Promise.resolve(true).then(onFullfilled())

否,
。那么(oncompleted)
是正确的<代码>已完成是一个函数
oncompleted()
是一个函数调用。
it("does something", function(){
    return aPromise; // if aPromise resolves the test passes
})