繁体   English   中英

JavaScript Promise中的奇怪行为

[英]Strange behaviour in javascript Promise

考虑以下代码片段,

function one(){
    var prm = new Promise(function(resolve,reject){

    });
    prm.customKey = function(){
    }
    return prm;
}
function two(){
    return one().then(function(){
        //something
    });
}

现在调用函数二,返回一个缺少“ customKey”的promise

function three(){
    return one();
}  

但是,当在函数三中执行相同的操作时(不使用“ then”处理成功),将返回其中包含“ customKey”的promise。

有人可以澄清我的真实情况,为什么吗?

从“ Mozilla文档”中可以看到, then方法将返回新的Promise (例如: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then )。

如果要分配一个函数来检索/在resolve函数中执行某些操作,请按以下步骤进行操作:

var prm = new Promise((resolve, reject) => {
    let customKeyFunction = () => {
        console.log("I'm custom key function.");
    };

    resolve(customKeyFunction);
})

从现在开始,您可以像下面这样调用此函数:

function two() {
    return one().then(customKey => {
        customKey();
    })
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM