相关疑难解决方法(0)

如何从setTimeout做出承诺

这不是一个现实世界的问题,我只是想了解如何创造承诺.

我需要了解如何为一个不返回任何内容的函数做出承诺,比如setTimeout.

假设我有:

function async(callback){ 
    setTimeout(function(){
        callback();
    }, 5000);
}

async(function(){
    console.log('async called back');
});
Run Code Online (Sandbox Code Playgroud)

如何创建一个async可以在setTimeout准备好后返回的承诺callback()

我想包装它会带我到某个地方:

function setTimeoutReturnPromise(){

    function promise(){}

    promise.prototype.then = function() {
        console.log('timed out');
    };

    setTimeout(function(){
        return ???
    },2000);


    return promise;
}
Run Code Online (Sandbox Code Playgroud)

但我想不到这一点.

javascript settimeout promise

77
推荐指数
4
解决办法
7万
查看次数

理解javascript承诺对象

我试图在javascript中包围promise对象.所以我在这里有一小段代码.我有一个promise对象和两个console.log()在promise对象的两边.我以为它会打印

你好

那里

zami

但它打印出来了

HI

zami

there
Run Code Online (Sandbox Code Playgroud)

为什么它就像那样.我对如何工作没有任何理解,但我理解异步回调在javascript中是如何工作的.任何人都可以对这个主题有所了解吗?

console.log('hi');
var myPromise = new Promise(function (resolve, reject) {
    if (true) {
        resolve('There!');
    } else {
        reject('Aww, didn\'t work.');
    }
});

myPromise.then(function (result) {
    // Resolve callback.
    console.log(result); 
}, function (result) {
    // Reject callback.
    console.error(result);
});
console.log('zami');
Run Code Online (Sandbox Code Playgroud)

javascript promise

18
推荐指数
4
解决办法
5773
查看次数

标签 统计

javascript ×2

promise ×2

settimeout ×1