2016-07-19 21 views
0

我正在通過http://nodeschool.io/承諾它不會傷害當然。下面是分配promise_after_promiseconsole.log沒有傳遞任何參數的情況下的打印值

'use strict'; 

/* global first, second */ 

var firstPromise = first(); 

var secondPromise = firstPromise.then(function (val) { 
    return second(val); 
}); 

secondPromise.then(console.log); 

// As an alternative to the code above, ou could also do this: 
// first().then(second).then(console.log); 

他們沒有傳遞任何值CONSOLE.LOG但它仍然打印值怎麼解決?

+0

這就是回調的工作原理。請在javascript中回顧一些關於回調的教程。 – user3151766

+0

因爲promise在調用回調時傳遞一個值? – Bergi

回答

2

promise.then需要一個函數(其實兩個,但這裏只使用一個)。然後它調用這個函數並得到解決的承諾。在這種情況下,console.log是一個函數,它被解析後的promise所調用。

越容易理解的選擇將是

secondPromise.then(function(result) { 
    console.log(result); 
}); 

但它帶來不必要的功能。

相關問題