Status janji yang dapat dibatalkan

Masalah terlama di https://github.com/promises-aplus/cancellation-spec adalah (pada saat itu penulisan) umur 9 bulan. Saya benar-benar tidak dapat menemukan sumber informasi terpercaya mengenai fitur pembatalan pada janji 'standar'.

Saat ini sepertinya fitur tersebut diterapkan di bluebird, namun sebagai pengembang perpustakaan saya tidak ingin mengacaukan paket saya dengan paket lengkap implementasi janji.

Apa yang ingin saya lakukan hanyalah memberikan janji dan mendukung spesifikasi pembatalan.

Di mana saya dapat menemukan informasi ini?


person Pier Paolo Ramon    schedule 14.02.2014    source sumber


Jawaban (1)


Janji yang dapat dibatalkan tidak akan ada di ES6, karena janji ES6 sangat minim.

Pengerjaan pembatalan pada ruang Promises/A+ terhenti, karena kami menunggu evolusi perpustakaan untuk membuktikan bahwa satu pendekatan jelas lebih unggul. Pemikiran terbaru ada di masalah ini, yang merupakan hal yang diinginkan sebagian besar perpustakaan implementasi pembatalan tampaknya mengikuti (kurang lebih). Poin-poin utamanya adalah:

  • Pembatalan sebagai kasus penolakan khusus
  • Reaksi terhadap pembatalan merambat ke atas dalam rantai, begitu pula penolakan itu sendiri merambat ke bawah.

Tidak jelas apa yang Anda maksud dengan "hanya memberikan janji dan mendukung spesifikasi pembatalan". Apakah Anda mencoba memproduksi barang-barang tersebut, dengan asumsi bahwa konsumen perpustakaan Anda akan mentransmisikannya, tetapi entah bagaimana mewarisi beberapa perilaku pembatalan setelahnya? Itu akan sedikit rumit, terutama karena pembatalan umumnya bergantung pada konstruktor Cancellation tertentu yang digunakan untuk menolak janji. Jika ekosistem pembatalan lebih berkembang, cara untuk melakukan hal ini mungkin akan lebih mudah.

Adapun masa depan, ya, sedang berubah-ubah! Salah satu jalan ke depannya adalah seseorang memperjuangkan evolusi proposal pembatalan tersebut di ruang Promises/A+, dengan mendapatkan dukungan dari pelaksana dari perpustakaan besar seperti Q, RSVP, kapan, dan Bluebird. Maka banyak perpustakaan kecil kemungkinan akan menyetujuinya, dan Anda akan memiliki sesuatu yang mungkin dapat Anda andalkan. Jika terbukti populer, mungkin akan dipertimbangkan untuk janji ECMAScript juga!

Tapi itu tergantung pada banyak orang yang melakukan banyak pekerjaan, jadi kita lihat saja apakah itu terjadi :). Sungguh suatu keajaiban hal ini bisa terjadi dengan spesifikasi dasar Promises/A+, tapi siapa tahu... hal itu bisa terjadi lagi!

person Domenic    schedule 14.02.2014
comment
Domenic, pekerjaan Anda pada spesifikasi janji luar biasa, terima kasih atas klarifikasinya. Dan ya, maksud saya persis seperti itu, bisa menghasilkan cancellable thenable akan menjadi luar biasa. Bagaimana seseorang bisa lebih terlibat dalam mewujudkan hal ini? Ada banyak sisi buruknya, seperti pembatalan hasil Promise.all dan agregat serupa, misalnya. - person Pier Paolo Ramon; 14.02.2014
comment
@PierPaoloRamon Anda dapat mengandalkan Bluebird untuk terus mendukung Cancellable di masa mendatang, tetapi pada titik ini yang dimaksud adalah 'memilih ikut' dan bukan 'memilih tidak ikut'. Artinya, Anda harus memanggil metode yang dijanjikan agar dapat dibatalkan. Jadi karena sebagai API, ia tidak memiliki 'biaya' kinerja untuk perpustakaan, paling buruk ia akan menjadi sebuah plugin - sehingga Anda dapat terus menggunakannya. Karena itu, saya mungkin tidak akan menulis kode (perpustakaan) yang menghadap ke depan yang mengandalkan kesadaran/akrab dengan perilaku ini karena tidak diterapkan di sebagian besar perpustakaan lain saat ini, atau di JS asli. - person Benjamin Gruenbaum; 14.02.2014
comment
Saya tidak yakin apakah ini tentang hal yang sama, mungkin hanya terkait, tapi proposal janji yang dapat dibatalkan TC39 telah ditarik. - person user247702; 20.12.2016
comment
@Stijn ini adalah masalah yang sama. Telah ditarik tetapi ada pergerakan baru-baru ini (dalam beberapa jam terakhir) mengenai topik ini. - person Pier Paolo Ramon; 20.12.2016
comment
@PierPaoloRamon Saya baru menyadari bahwa penjawab dan pemenang proposal adalah orang yang sama, ups :) - person user247702; 20.12.2016