THẢO LUẬN

thg 1 16, 2018 2:13 SA

Dễ thấy () => val không phải là một pure function. Do đó trong FP, cách làm trên là không được khuyến khích. ... constant là một pure function nên chúng ta sẽ không cần lo lắng về việc vi phạm các quy tắc trong FP.

constant pure, nhưng ở đây dùng kết quả constant(val), vẫn là một impure function mà thôi Nếu lấy lí do constant thường được dùng nhiều lần thì còn có vẻ hợp lý hơn?

0

Một bài viết rất thú vị

+1
thg 1 15, 2018 2:22 CH

Chắc phải tẩy não đi mới thấm được cái FP này. Khó quá 😖

0
thg 1 15, 2018 6:43 SA

chào bạn, không hẳn là do chưa try catch đâu bạn. mình đang tìm hiểu về apollo js. phần trả response về cho client. mình đã tìm hiểu trên mạng. xem nhiều clip vs tutorial đều throw new Error . Mình đang phân vân là tại sao mình đã get được error trên server
const { data: { loading, error, contacts }, client } = this.props; trả về trong trong phần render() của react ròi. mà tại sao trong tab console của trình duyệt lại văng ra cái lỗi

Unhandled error GraphQL error: Bạn không có quyền truy cập hệ thống.hehe Error: GraphQL error: Bạn không có quyền truy cập hệ thống.hehe
    at new ApolloError (http://localhost:3000/static/js/bundle.js:20785:28)
    at http://localhost:3000/static/js/bundle.js:19847:41
    at http://localhost:3000/static/js/bundle.js:20234:17
    at Array.forEach (<anonymous>)
    at http://localhost:3000/static/js/bundle.js:20233:18
    at Map.forEach (<anonymous>)
    at QueryManager../node_modules/apollo-client/core/QueryManager.js.QueryManager.broadcastQueries (http://localhost:3000/static/js/bundle.js:20228:22)
    at Object.next (http://localhost:3000/static/js/bundle.js:20267:31)
    at SubscriptionObserver.next (http://localhost:3000/static/js/bundle.js:145182:14)
    at http://localhost:3000/static/js/bundle.js:21121:76
    at Array.forEach (<anonymous>)
    at Object.next (http://localhost:3000/static/js/bundle.js:21121:43)
    at SubscriptionObserver.next (http://localhost:3000/static/js/bundle.js:145182:14)
    at SubscriptionObserver.next (http://localhost:3000/static/js/bundle.js:145182:14)
    at http://localhost:3000/static/js/bundle.js:21319:26
    at <anonymous>
__stack_frame_overlay_proxy_console__ @ index.js:2177

Uncaught (in promise) Error: GraphQL error: Bạn không có quyền truy cập hệ thống.hehe
    at new ApolloError (ApolloError.js:34)
    at Object.next (QueryManager.js:700)
    at SubscriptionObserver.next (zen-observable.js:154)
    at dedupLink.js:49
    at Array.forEach (<anonymous>)
    at Object.next (dedupLink.js:49)
    at SubscriptionObserver.next (zen-observable.js:154)
    at SubscriptionObserver.next (zen-observable.js:154)
    at httpLink.js:140
    at <anonymous>````
0

ok. thanks bạn nhé. hihi.

+1

VD: Chào mọi người.

Mình cũng đang tìm hiểu apollo kết hợp với react js để query qua Graphql. Mình đang gặp vấn đề về việc ném error về client. Trong phần resolvers mình viết thế này

contacts: async (root, arg, context) => {
    if (!context.user) {
        throw new AuthorizeError();
    }

    return getAllContacts();
},

Trường hợp hoàn hảo là người dùng đăng nhập thành công. context.user sẽ có giá trị. và mình lấy được danh sách contacts.

Sau đó mình check trường hợp context.user = null. thì mình ném ra một cái lỗi throw new AuthorizeError():

const AuthorizeError = createError('AuthorizeError', {
    message: '**Bạn không có quyền truy cập hệ thống.hehe**',
    data: { fasdfaf: 'fdasff' }
});

Sau khi mình reload lại thì Dưới client ( trong source react ) mình catch được cái lỗi đó. nhưng khong hiểu vì sao trong tab console của trình duyệt lại văng ra cái lỗi:

render() {
    const { data: { loading, error, contacts }, client } = this.props;
    if (loading) {
        return (<p>Loading.....</p>);
    }

    debugger;
    if (error) {
        if (error.graphQLErrors[0].name == "AuthorizeError") {
            return { error.graphQLErrors[0].message }
        }
    }
} 

Trong tab console văng lỗi này Unhandled error GraphQL error: Bạn không có quyền truy cập hệ thống.hehe Error: GraphQL error: Bạn không có quyền truy cập hệ thống.hehe at new ApolloError Mình xin đính kèm cái hình

+1

Viblo có hỗ trợ cú pháp markdown trong form của comment, answer, question, post giúp highlight code bằng cú pháp: ``` CODE HERE ```. Bạn có thể đặt câu hỏi và sử dụng cú pháp trên để câu hỏi được hiển thị đẹp và dễ đọc hơn nhé.

+1

Cám ơn bạn, bài viết rất hay 😄

+1

cảm ơn bình luận của bạn 😃

0

@zhuylanz Có 2 môi trường ở đây. 1 là môi trường chạy script này. 2 là môi trường ở trang mình muốn lấy dữ liệu. Hàm evaluate để trả dữ liệu từ môi trường 2 về môi trường 1 để mình xử lý đó bạn 😄

0
thg 1 14, 2018 9:52 SA

anh Khánh cho em hỏi hàm evaluate() là để làm gì vậy ạ? Để hiểu các khái niệm này mình nên tìm đọc tài liệu nào ạ?

0
thg 1 14, 2018 7:39 SA

Chao ban, ban cho minh hoi minh cai:

  • Android Studio 3.0.1
  • Download: selendroid-standalone-0.11.0
  • Selendroid-test-app-0.12.0.apk minh chay lenh: java -jar selendroid-standalone-0.11.0-with-dependencies.jar ma toan bao loi Invalid or unsupported command "list avds"

Supported commands are: android list target android list avd android list device android create avd android move avd android delete avd android list sdk android update sdk

... 9 more

Ban huong dan giup minh cai nhe. Cam on rat nhieu

0
thg 1 14, 2018 5:10 SA

Code rất hay nhưng không thực sự tối ưu! Server nhận request liên tục như vậy thì với site có traffic lớn rất dễ chết server! 😦

0
Avatar
đã bình luận cho bài viết
thg 1 14, 2018 1:54 SA

Bạn thay ~/Programs/scripts/google-goldendict.php bằng đường dẫn tuyệt đối nhé, vd: /home/my-username/Programs/scripts/google-goldendict.php

0
thg 1 13, 2018 4:01 CH

where I get the source code of the application?

0
thg 1 13, 2018 4:01 CH

where I get the source code of the application?

0
thg 1 13, 2018 1:18 CH

Bạn có thể bổ sung thêm upload file = ajax nữa 😄

0
Avatar
đã bình luận cho bài viết
thg 1 13, 2018 10:32 SA

Phần golden dict mã lệnh php thiếu "; ở cuối Mình dùng golden dict không được. trên terminal thì ok? Query error: The program has returned exit code 1. Could not open input file: ~/Programs/scripts/google-goldendict.php Bạn xem lại giúp mình.Thanks 😃

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí