2015-07-27 30 views
5

Xem xét tình huống này.Giá trị trả lại của các chức năng giải quyết/từ chối của Promise

new Promise(function(resolve, reject) { 
    var x = resolve(2); 
}); 

Giá trị nào sẽ x? Tôi đã cố in nó và nó cho tôi xem undefined. Nó là trực quan, nhưng nó luôn luôn như vậy? Có trong tài liệu không?

Câu hỏi thứ hai

new Promise(function(resolve, reject) { 
    resolve(2); 
    return 5; 
}); 

gì chúng ta nên trở về từ chức năng mà chúng tôi đưa vào một lời hứa? Giá trị này có bị bỏ qua không?

Trả lời

4

Giá trị trả về của hàm tạo lời hứa is ignored.

Chức năng resolve cũng returns undefined.

Điều này lần đầu tiên được chỉ định trong thông số hàm tạo lời hứa và sau đó trong ES2015 (ES6) language specification.

+0

Bạn có thể hiển thị nó trong đặc điểm của Promises không? –

+0

@ MichałKownacki Tôi đã thêm trích dẫn, cụ thể là kiểm tra ghi chú trong http://www.ecma-international.org/ecma-262/6.0/index.html#sec-promise-executor –

+0

Vâng nhưng tôi đang sử dụng nút. js với Bluebird, nó sử dụng tiêu chuẩn Promises/A +. –

Các vấn đề liên quan