2016-04-27 7 views
0

私はnode.jsの約束事のためにwhen.jsを使ってきました。when.jsからES6への約束

function my_func() { 
    var d = when.defer(); 

    // Async actions simulated with timeout 
    setTimeout(function() { 
     //... 
     if(error) { 
      return d.resolve(error); 
     } 
     d.resolve(result); 
    }, 1000) 

    return d.promise; 
} 

私はそうのように呼び出します:私はES6の約束と同じことを行うにはどうすればよい

my_func().then(
    function(res) { 
     //... 
    }, 
    function(err) { 
     // Handle error 
    } 
); 

を私は次のような機能を持っていますか?

答えて

2

あなたの本来の機能は、if (error)条件でいくつかのミスがあったので、ここで更新抜粋です:

function my_func() { 
    var d = when.defer(); 

    // Async actions simulated with timeout 
    setTimeout(function() { 
     //... 
     if(error) { 
      d.reject(error); 
     } 
     d.resolve(result); 
    }, 1000) 

    return d.promise; 
} 

function my_func() { 
    return new Promise(function (resolve, reject) { 
    //Async actions simulated with timeout 
    setTimeout(function() { 
     //... 
     if (error) { 
     reject(error); 
     } 
     resolve(result); 
    }, 1000); 
    }); 
} 
に変身します

でこれはかなりうまくカバーされています210

2

構造はかなり似ています

function my_func() { 
    return new Promise(function(resolve, reject) { 
     setTimeout(function() { 
      if (error) { 
       reject('no'); 
      } 
      resolve('yes') 
     }, 1000); 
    }); 
} 
1
//Creating promise 
function my_func() { 
    return new Promise(function(resolve, reject) { 
     setTimeout(function() { 
     //... 
     if(error) { 
      reject(Error("Error Message")); 
     } 
     resolve("Success message") 
    }, 1000) 
    }); 
} 
//Using it 
my_func().then(function(response){ 
    console.log("Success!", response); 
}, function(err){ 
    console.error("Failed!", err); 
}) 
関連する問題