Tôi rõ ràng là sự hiểu lầm một cái gì đó về một trong hai cách js hứa hẹn được giải quyết hoặc về ngữ nghĩa của "trở lại."Làm cách nào để chặn lời hứa javascript và trả lại kết quả đã giải quyết?
Tôi đang được gọi bằng chức năng mong muốn tôi đồng bộ - để trả về giá trị. Tính toán giá trị mà đòi hỏi một số mã không đồng bộ (đặc biệt là các phương pháp ForEach trên dstore Collection
Những gì tôi đang cố gắng để đạt được là xấp xỉ này, nhưng điều này không làm việc trong đó các chức năng mySynchronousFunction không có giá trị trả về.
function mySynchronousFunction() {
var accumulator = {};
var myPromise = doAsynchronousThingThatSideEffectsAccumulator();
// Now my caller is expecting the value of accumulator.
myPromise.then(function() {return accumulator;})
}
tôi hiểu rằng JS đã cho phép triển khai đơn luồng, do đó nó không được làm mát để ngăn chặn, nhưng phải có một số mô hình cho dán không đồng bộ mã đồng bộ, mà tôi vừa bỏ qua.
Nó không phải về việc cho phép triển khai chuỗi đơn - ** tất cả triển khai ** nhất thiết phải là một luồng đơn. – meagar
@meagar đó là không đúng sự thật - không có gì nói rằng tất cả các hiện thực là đơn luồng - ví dụ Rhino trong Java. –
Không thể thêm câu trả lời nhưng điều này hữu ích cho tôi: http://www.tivix.com/blog/making-promises-in-a-synchronous-manner/ – rainabba