转载地址:https://msdn.microsoft.com/zh-cn/library/dn802833(v=vs.94).aspx
允许你指定实现承诺时要完成的工作。
promise.then(onCompleted, onRejected);
-
promise
-
必需。Promise 对象。
onCompleted
-
必需。承诺成功完成时要运行的履行处理程序函数。
onRejected
-
可选。承诺被拒绝时要运行的错误处理程序函数。
承诺必须完成(返回一个值)或者必须被拒绝(返回一个原因)。承诺完成或被拒绝时(无论哪一个先发生),Promise 对象的 then 方法都会运行。如果承诺成功完成,则将运行 then 方法的履行处理程序函数。如果承诺被拒绝,则将运行 then 方法(或 catch 方法)的错误处理程序函数。
下面的示例演示如何调用返回承诺的函数 (timeout)。达到 5000 ms 的超时时间后,将运行 then 方法的履行处理程序。
function timeout(duration) { return new Promise(function(resolve, reject) { setTimeout(resolve, duration); }); } // Note: This code uses arrow function syntax var m = timeout(5000).then(() => { console.log("done!"); }) // Output (after 5 seconds): // done!
要求
Microsoft Edge(Edge 浏览器)中受支持。应用商店应用(Windows 10 上的 Microsoft Edge)中也受支持。请参阅版本信息。
在以下文档模式中不受支持:Quirks、Internet Explorer 6 标准模式、Internet Explorer 7 标准模式、Internet Explorer 8 标准模式、Internet Explorer 9 标准模式、Internet Explorer 10 标准模式和 Internet Explorer 11 标准模式。在 Windows 8.1 中不受支持。